Skip to content

[Portal] Migrate Hooks page to Radix UI with tab navigation#5761

Closed
jimmycwc wants to merge 10 commits into
authgear:mainfrom
jimmycwc:ui-Radix
Closed

[Portal] Migrate Hooks page to Radix UI with tab navigation#5761
jimmycwc wants to merge 10 commits into
authgear:mainfrom
jimmycwc:ui-Radix

Conversation

@jimmycwc

@jimmycwc jimmycwc commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Extend v2 component library — Add password type and plain suffix support to TextField, optional labelSize on FormField, and match disabled state styling on SecondaryButton
  • Introduce SaveFunctionBar — New floating save bar component aligned to content width with discard confirmation dialog and Storybook coverage
  • Migrate Custom Email Provider screen — Replace the enable toggle with provider selection cards (RadioCards), adopt v2 form controls and SaveFunctionBar, update typography/spacing, and swap provider logos to inline SVG assets
  • Fix Admin API keys overflow on small screens — Migrate AdminAPIConfigurationScreen to v2 components; make the API keys table horizontally scrollable on narrow viewports with a hidden-scrollbar wrapper; introduce ConfirmationDialog v2 component
  • Migrate shared discard dialogs — Use ConfirmationDialog for SaveFunctionBar, FormContainer reset, and navigation blocker flows; raise dialog overlay z-index so Monaco editor UI does not paint above the modal mask
  • Migrate remaining Advanced settings screens — Refactor Account Deletion, Account Anonymization, Cookie Lifetime, Endpoint Direct Access, SMTP, Custom SMS Gateway, Admin API, Edit Config, and SAML Certificate to v2 layout patterns with SaveFunctionBar, align content width to grid-column: 1 / span 9, and add missing page descriptions
  • Replace authgear logo with inline SVG vector paths — Remove base64 PNG embed for sharper rendering
  • Add Toggle Storybook stories — Document default, checked, with-text, and disabled variants

Test plan

  • Verify all Advanced settings screens (Admin API, Account Deletion, Account Anonymization, Cookie Lifetime, Custom Email Provider, Custom SMS Gateway, Endpoint Direct Access, SAML Certificate, Edit Config) render correctly with the new layout
  • Confirm the SaveFunctionBar appears when there are unsaved changes and the discard confirmation dialog works across all migrated screens
  • Verify the Admin API keys table scrolls horizontally on narrow viewports
  • Confirm the Custom Email Provider provider-selection cards toggle correctly between provider types
  • Verify discard dialogs (form reset, navigation blocker) use the Radix ConfirmationDialog and render above the Monaco editor
  • Run cd portal && npm run typecheck — must pass clean

Made with Cursor

jimmycwc and others added 10 commits June 1, 2026 15:03
Add password type and plain suffix support on TextField, optional
labelSize on FormField, and match disabled SecondaryButton styling to
the design system.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce a floating save bar aligned to content width, with discard
confirmation and Storybook coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the enable toggle with provider cards, adopt v2 form controls and
SaveFunctionBar, update typography and spacing to match design, and swap
provider logos to SVG assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use v2 components for Admin API Configuration screen and make the keys table horizontally scrollable on narrow viewports.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use ConfirmationDialog for SaveFunctionBar, FormContainer reset, and
navigation blocker flows. Raise dialog overlay z-index so Monaco editor
UI does not paint above the modal mask.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document default, checked, with-text, and disabled Toggle variants.

Co-authored-by: Cursor <cursoragent@cursor.com>
Refactor Account Deletion, Account Anonymization, Cookie Lifetime,
Endpoint Direct Access, SMTP, SMS Provider, Admin API, Edit Config,
and SAML Certificate to v2 layout patterns with SaveFunctionBar.
Align content width to Admin API grid span 9 and add page descriptions.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use inline path elements instead of a base64 PNG for sharper rendering.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Replace Fluent UI components with Radix UI equivalents (Text, Select,
  TextField, ConfirmationDialog, IconButton, Tooltip)
- Introduce tab-based navigation (Blocking Events, Non-blocking Events,
  Hook Settings, Webhook Signature) using Radix Themes Tabs
- Apply two-column section layout (left: label, right: content) inside
  each tab panel, matching other advanced settings pages
- Style Blocking Hooks table to match Admin API keys table pattern
  (gray-a2 row backgrounds, border-top separators, semibold headers,
  horizontal scroll wrapper with min-width enforcement)
- Switch ScreenContent to list layout for responsive full-width grid
- Update Webhook Signature secret key input to use embedded reveal/copy
  icon buttons in TextField suffix, matching SMS Provider screen style

Co-authored-by: Cursor <cursoragent@cursor.com>
…ration screens

- Deleted the contentWidthAnchor CSS class from Account Anonymization, Account Deletion, Cookie Lifetime, Edit, Endpoint Direct Access, SAMLCertificate, SMS Provider, and SMTP configuration screens.
- Updated corresponding TSX files to remove references to the now-removed class, ensuring cleaner code and improved maintainability.
@fungc-io

Copy link
Copy Markdown
Member

@jimmycwc this PR should not contain the Hook page changes

@fungc-io

Copy link
Copy Markdown
Member

Gonna close this one and move it to #5771 — same Advanced-settings migration, just minus the Hooks page and with the review fixes + CI green. We can do Hooks in its own PR. 🙏

@fungc-io fungc-io closed this Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants